function setRem(): void {
    const docEl = document.documentElement;
    const dpr = window.devicePixelRatio || 1;
    function setBodyFontSize(): void {
      if (document.body) {
        document.body.style.fontSize = `${12 * dpr}px`;
      } else {
        document.addEventListener('DOMContentLoaded', setBodyFontSize);
      }
    }
  
    setBodyFontSize();
    function setRemUnit(): void {
      const rem = docEl.clientWidth / 10; 
      docEl.style.fontSize = `${rem}px`;
    }
  
    setRemUnit();
    window.addEventListener('resize', setRemUnit);
    window.addEventListener('pageshow', (e) => {
      if (e.persisted) {
        setRemUnit();
      }
    });
  
    // 检测 0.5px 边框支持
    if (dpr >= 2) {
      const fakeBody = document.createElement('body');
      const testElement = document.createElement('div');
      testElement.style.border = '.5px solid transparent';
      fakeBody.appendChild(testElement);
      docEl.appendChild(fakeBody);
      if (testElement.offsetHeight === 1) {
        docEl.classList.add('hairlines');
      }
      docEl.removeChild(fakeBody);
    }
  }
  
  export default setRem;
  